<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    // es6提供了一个 Symbol类
    // 实例化Symbol类型的时候不需要new
    const a = Symbol(); //a就是一个Symbol类型的数据
    const b = Symbol(); //b也是一个Symbol类型的数据
    console.log(a === b); // false
    // 给Symbo类型的数据分配一个字符串
    const c = Symbol('abc');
    const d = Symbol('abc');
    console.log(c.description) // abc
    console.log(d.description) // abc
    // 做属性名
    const obj = {}
    obj[a] = 123; // 通过变量a可以访问
    obj[Symbol()] = 456; // 不可被访问的
    // 注册Symbol与字符串的关系
    const e = Symbol.for('e');
    const f = Symbol.for('e');
    console.log(e === f); // true
    // keyFor
    const g = Symbol.keyFor(e);
    const h = Symbol.keyFor(f);
    const i = Symbol.keyFor(c);
    const j = Symbol.keyFor(a);
  </script>
</body>

</html>